/* $Id : utils.js 5052 2007-02-03 10:30:13Z weberliu $ */

var Browser = new Object();

Browser.isMozilla = (typeof document.implementation != 'undefined') && (typeof document.implementation.createDocument != 'undefined') && (typeof HTMLDocument != 'undefined');
Browser.isIE = window.ActiveXObject ? true : false;
Browser.isFirefox = (navigator.userAgent.toLowerCase().indexOf("firefox") != -1);
Browser.isSafari = (navigator.userAgent.toLowerCase().indexOf("safari") != -1);
Browser.isOpera = (navigator.userAgent.toLowerCase().indexOf("opera") != -1);

var Utils = new Object();

Utils.htmlEncode = function (text) {
  return text.replace(/&/g, '&amp;').replace(/"/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
}

Utils.trim = function (text) {
  if (typeof (text) == "string") {
    return text.replace(/^\s*|\s*$/g, "");
  } else {
    return text;
  }
}

Utils.isEmpty = function (val) {
  switch (typeof (val)) {
    case 'string':
      return Utils.trim(val).length == 0 ? true : false;
      break;
    case 'number':
      return val == 0;
      break;
    case 'object':
      return val == null;
      break;
    case 'array':
      return val.length == 0;
      break;
    default:
      return true;
  }
}

Utils.isNumber = function (val) {
  var reg = /^[\d|\.|,]+$/;
  return reg.test(val);
}

Utils.isInt = function (val) {
  if (val == "") {
    return false;
  }
  var reg = /\D+/;
  return !reg.test(val);
}

Utils.isEmail = function (email) {
  var reg1 = /([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)/;

  return reg1.test(email);
}

Utils.isTel = function (tel) {
  var reg = /^1[3|4|5|8|7][0-9]\d{4,8}$/; //只允许使用数字-空格等

  return reg.test(tel);
}

Utils.fixEvent = function (e) {
  var evt = (typeof e == "undefined") ? window.event : e;
  return evt;
}

Utils.srcElement = function (e) {
  if (typeof e == "undefined") e = window.event;
  var src = document.all ? e.srcElement : e.target;

  return src;
}

Utils.isTime = function (val) {
  var reg = /^\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}$/;

  return reg.test(val);
}

Utils.x = function (e) { //当前鼠标X坐标
  return Browser.isIE ? event.x + document.documentElement.scrollLeft - 2 : e.pageX;
}

Utils.y = function (e) { //当前鼠标Y坐标
  return Browser.isIE ? event.y + document.documentElement.scrollTop - 2 : e.pageY;
}

Utils.request = function (url, item) {
  var sValue = url.match(new RegExp("[\?\&]" + item + "=([^\&]*)(\&?)", "i"));
  return sValue ? sValue[1] : sValue;
}

Utils.$ = function (name) {
  return document.getElementById(name);
}

function rowindex(tr) {
  if (Browser.isIE) {
    return tr.rowIndex;
  } else {
    table = tr.parentNode.parentNode;
    for (i = 0; i < table.rows.length; i++) {
      if (table.rows[i] == tr) {
        return i;
      }
    }
  }
}

document.getCookie = function (sName) {
  // cookies are separated by semicolons
  var aCookie = document.cookie.split("; ");
  for (var i = 0; i < aCookie.length; i++) {
    // a name/value pair (a crumb) is separated by an equal sign
    var aCrumb = aCookie[i].split("=");
    if (sName == aCrumb[0])
      return decodeURIComponent(aCrumb[1]);
  }

  // a cookie with the requested name does not exist
  return null;
}

document.setCookie = function (sName, sValue, sExpires) {
  var sCookie = sName + "=" + encodeURIComponent(sValue);
  if (sExpires != null) {
    sCookie += "; expires=" + sExpires;
  }

  document.cookie = sCookie;
}

document.removeCookie = function (sName, sValue) {
  document.cookie = sName + "=; expires=Fri, 31 Dec 1999 23:59:59 GMT;";
}

function getPosition(o) {
  var t = o.offsetTop;
  var l = o.offsetLeft;
  while (o = o.offsetParent) {
    t += o.offsetTop;
    l += o.offsetLeft;
  }
  var pos = { top: t, left: l };
  return pos;
}

function cleanWhitespace(element) {
  var element = element;
  for (var i = 0; i < element.childNodes.length; i++) {
    var node = element.childNodes[i];
    if (node.nodeType == 3 && !/\S/.test(node.nodeValue))
      element.removeChild(node);
  }
}
